1 Imports System.Data.SqlClient
2 Public Class Thoi_diem
3     Private bang_thoi_diem As DataTable
4     Private bang_tuyen_xe As DataTable
5     Private lenh As String
6     Private flag As Boolean
7
8     Public Sub Update_thoi_diem()
9         Doc_thoi_diem()
10         Tao_lien_ket()
11         Doc_tuyen()
12         Hide()
13     End Sub
14
15     Private Sub Hide()
16         Form_Main.rad_KhongLap.Hide()
17         Form_Main.rad_LapTuan.Hide()
18         Form_Main.lbl_Lap.Hide()
19         Form_Main.date_NgayKetThuc.Hide()
20     End Sub
21
22     Private Sub Show()
23         Form_Main.rad_KhongLap.Show()
24         Form_Main.rad_LapTuan.Show()
25     End Sub
26
27     Private Sub Doc_tuyen()
28         lenh =
"Select IdTuyen, TenTuyen from TuyenXe"
29         bang_tuyen_xe = Doc_bang(lenh)
30         With Form_Main.cbo_GanTuyen
31             .DataSource = bang_tuyen_xe
32             .DisplayMember =
"IdTuyen"
33             .ValueMember =
"IdTuyen"
34         End With
35         With Form_Main
36             .txt_TenTuyen.DataBindings.Clear()
37             .txt_TenTuyen.DataBindings.Add(
"Text", bang_tuyen_xe, "TenTuyen")
38         End With
39     End Sub
40
41 #Region
"Doc thoi diem voi tao lien ket da xong"
42     Private Sub Doc_thoi_diem()
43         lenh =
"Select * from ThoiDiem"
44         bang_thoi_diem = Doc_bang(lenh)
45         Form_Main.luoi_ThoiDiem.DataSource = bang_thoi_diem
46     End Sub
47
48     Private Sub Tao_lien_ket()
49         With Form_Main.cbo_MaThoiDiem
50             .DataSource = bang_thoi_diem
51             .DisplayMember =
"IdThoiDiem"
52             .ValueMember =
"IdThoiDiem"
53         End With
54         With Form_Main
55             .date_Chay.DataBindings.Clear()
56             .txt_GioChay.DataBindings.Clear()
57
58             .date_Chay.DataBindings.Add(
"Text", bang_thoi_diem, "Ngay")
59             .txt_GioChay.DataBindings.Add(
"Text", bang_thoi_diem, "Gio")
60         End With
61     End Sub
62 #End Region
63
64 #Region
"Xu ly ho tro button da xong"
65     Private Sub Clear_Control()
66         With Form_Main
67             .date_Chay.Text =
""
68             .date_NgayKetThuc.Text =
""
69             .txt_GioChay.Text =
""
70             .rad_KhongLap.Checked = True
71             .date_Chay.Focus()
72         End With
73     End Sub
74
75     Private Sub LockButton(ByVal dt As Boolean)
76         With Form_Main
77             .btn_ThemThoiDiem.Enabled = Not dt
78             .btn_SuaThoiDiem.Enabled = Not dt
79             .btn_XoaThoiDiem.Enabled = Not dt
80             .btn_LuuThoiDiem.Enabled = dt
81             .btn_HuyThoiDiem.Enabled = dt
82         End With
83     End Sub
84 #End Region
85
86     Public Sub them()
87         flag = True
88         LockButton(True)
89         Form_Main.lbl_Lap.Hide()
90         Form_Main.date_NgayKetThuc.Hide()
91         Show()
92         Clear_Control()
93         Form_Main.cbo_MaThoiDiem.Enabled = False
94     End Sub
95
96     Public Sub Sua()
97         Form_Main.rad_LapTuan.Checked = False
98         Form_Main.rad_KhongLap.Checked = True
99         Show()
100         flag = False
101         LockButton(True)
102         Form_Main.cbo_MaThoiDiem.Enabled = False
103     End Sub
104
105     Public Sub Luu()
106         Tao_ket_noi()
107         If connect.State = ConnectionState.Open Then
108             connect.Close()
109         End If
110         With Form_Main
111             
'Neu nhu trang thai dang la them
112             If flag Then
113                 If TestInfo() Then
114
115                     
'Kiem tra ngay gio them vao phai la chua co trong CSDL
116                     Dim sqlCM As New SqlCommand(
"select Ngay, Gio from ThoiDiem", connect)
117                     Dim sqlDR As SqlDataReader
118                     connect.Open()
119                     sqlDR = sqlCM.ExecuteReader
120                     While sqlDR.Read() = True
121                         If FormatDateTime(CDate(sqlDR.GetValue(
0)), DateFormat.ShortDate) = .date_Chay.Text AndAlso sqlDR.GetValue(1).ToString = .txt_GioChay.Text Then
122                             MessageBox.Show(
"Ngày giờ này đã tồn tại, vui lòng kiểm tra lại thông tin nhập!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
123                             Exit Sub
124                         End If
125                     End While
126                     connect.Close()
127
128                     If .rad_KhongLap.Checked = True Then
129                         lenh =
"Insert into ThoiDiem(Ngay, Gio) "
130                         lenh &=
"Values ('" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
131                         Dim bo_lenh As New SqlCommand(lenh, connect)
132                         Try
133                             connect.Open()
134                             bo_lenh.ExecuteNonQuery()
135                             connect.Close()
136                             Update_thoi_diem()
137                             LockButton(False)
138                             MsgBox(
"Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
139                         Catch ex As Exception
140                             MessageBox.Show(
"Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
141                             connect.Close()
142                         End Try
143                     ElseIf .rad_LapTuan.Checked = True Then
144                         Dim i As Long = layKhoangCach()
145                         If i <
0 Then
146                             MessageBox.Show(
"Ngày kết thúc không được nhỏ hơn ngày bắt đầu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)
147                             Exit Sub
148                         End If
149                         If i =
0 Then 'Ngay them trung ngay hien tai
150                             lenh =
"Insert into ThoiDiem(Ngay, Gio) "
151                             lenh &=
"Values ('" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
152                             Dim bo_lenh As New SqlCommand(lenh, connect)
153                             Try
154                                 connect.Open()
155                                 bo_lenh.ExecuteNonQuery()
156                                 connect.Close()
157                                 Update_thoi_diem()
158                                 LockButton(False)
159                                 MsgBox(
"Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
160                             Catch ex As Exception
161                                 MessageBox.Show(
"Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
162                                 connect.Close()
163                             End Try
164                         ElseIf i >
0 Then
165                             Dim ngay =
0
166                             Dim d = CDate(.date_Chay.Text)
167                             While (ngay <= i)
168                                 lenh =
"Insert into ThoiDiem(Ngay, Gio) "
169                                 lenh &=
"Values ('" + FormatDateTime(d, DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
170                                 Dim bo_lenh As New SqlCommand(lenh, connect)
171                                 Try
172                                     connect.Open()
173                                     bo_lenh.ExecuteNonQuery()
174                                     connect.Close()
175                                 Catch ex As Exception
176                                     MessageBox.Show(
"Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
177                                     connect.Close()
178                                     Exit Sub
179                                 End Try
180                                 ngay +=
7
181                                 d = DateAdd(DateInterval.Day, ngay, d)
182                             End While
183                             Update_thoi_diem()
184                             LockButton(False)
185                             MsgBox(
"Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
186                         End If
187                     End If
188                 End If
189             Else
'trang thai sua
190                 If TestInfo() Then
191                     lenh =
"Update ThoiDiem set Ngay = '" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', Gio = '" + .txt_GioChay.Text + "' where IdThoiDiem = '" + .cbo_MaThoiDiem.Text + "'"
192                     Dim sqlqr As New SqlCommand(lenh, connect)
193                     Try
194                         connect.Open()
195                         sqlqr.ExecuteNonQuery()
196                         connect.Close()
197                         Update_thoi_diem()
198                         LockButton(False)
199                         MsgBox(
"Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
200                     Catch ex As Exception
201                         MessageBox.Show(
"Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
202                         connect.Close()
203                     End Try
204                 End If
205             End If
206         End With
207     End Sub
208
209     Public Sub Huy()
210         LockButton(False)
211         Update_thoi_diem()
212         Form_Main.cbo_MaThoiDiem.Enabled = True
213         Hide()
214     End Sub
215
216     Public Sub Xoa()
217         Dim qs = MessageBox.Show(
"Bạn chắc chắn muốn xóa tất cả thông tin về:" & vbNewLine & _
218                         
" - Ma thoi diem: " & Form_Main.cbo_MaThoiDiem.Text & vbNewLine & _
219                         
" - Ngay: " & Form_Main.date_Chay.Text & vbNewLine & _
220                         
" - Giờ: " & Form_Main.txt_GioChay.Text, "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information)
221         If qs = DialogResult.Yes Then
222             Dim lenh As String =
"Delete from ThoiDiem where IdThoiDiem = '" & Form_Main.cbo_MaThoiDiem.Text & "'"
223             Dim query1 As New SqlCommand(lenh, connect)
224             Try
225                 connect.Open()
226                 query1.ExecuteNonQuery()
227                 connect.Close()
228                 Update_thoi_diem()
229                 MsgBox(
"Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
230             Catch ex As Exception
231                 MsgBox(
"Thời điểm này đã được gán cho tuyến xe, bạn phải xóa thông tin tuyến xe đó trước!", vbExclamation, "Thông báo")
232             End Try
233         Else
234             MsgBox(
"Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
235         End If
236     End Sub
237
238     Private Function layKhoangCach() As Long
239         Dim i As Long
240         i = DateAndTime.DateDiff(DateInterval.Day, CDate(Form_Main.date_Chay.Text), CDate(Form_Main.date_NgayKetThuc.Text), FirstDayOfWeek.System, FirstWeekOfYear.System)
241         Return i
242     End Function
243
244     Private Function TestInfo() As Boolean
245         TestInfo = True
246         With Form_Main
247             If .rad_KhongLap.Checked = True Then
248                 If Trim(.date_Chay.Text) =
"" OrElse Trim(.txt_GioChay.Text) = "" Then
249                     TestInfo = False
250                     MsgBox(
"Bạn phải nhập đầy đủ thông tin!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
251                     Exit Function
252                 End If
253             ElseIf .rad_LapTuan.Checked = True Then
254                 If Trim(.date_Chay.Text) =
"" OrElse Trim(.txt_GioChay.Text) = "" OrElse .date_NgayKetThuc.Text = "" Then
255                     TestInfo = False
256                     MsgBox(
"Bạn phải nhập đầy đủ thông tin!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
257                     Exit Function
258                 End If
259
260                 If .date_Chay.Text <>
"" AndAlso .date_NgayKetThuc.Text <> "" Then
261                     If layKhoangCach() >
365 Then
262                         TestInfo = False
263                         MessageBox.Show(
"Bạn chỉ được lặp tuần trong phạm vi là 1 năm hay 48 tuần", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
264                         Exit Function
265                     End If
266                 End If
267             End If
268
269             If CDate(Form_Main.date_Chay.Text) < Today.Date Then
270                 TestInfo = False
271                 MessageBox.Show(
"Ngay ban them khong duoc nho hon ngay hien tai", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
272                 Exit Function
273             End If
274         End With
275     End Function
276
277     Public Sub Gan_tuyen()
278         With Form_Main
279             If .cbo_MaThoiDiem.Text =
"" Then
280                 MessageBox.Show(
"Bạn chưa chọn thời điểm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
281                 Exit Sub
282             End If
283             
'Neu ngay gio do da gan cho tuyen do roi thi thong bao loi
284             Dim sqlCM As New SqlCommand(
"select * from ChiTietTuyen", connect)
285             Dim sqlDR As SqlDataReader
286             connect.Open()
287             sqlDR = sqlCM.ExecuteReader
288             While sqlDR.Read() = True
289                 If sqlDR.GetValue(
0).ToString = .cbo_GanTuyen.Text AndAlso sqlDR.GetValue(1).ToString = .cbo_MaThoiDiem.Text Then
290                     MessageBox.Show(
"Thời điểm này đã được gán cho tuyến " & .cbo_GanTuyen.Text & " rồi!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
291                     connect.Close()
292                     Exit Sub
293                 End If
294             End While
295             connect.Close()
296
297             
'Sau khi kiem tra logic thi bat dau gan tuyen
298             lenh =
"Insert into ChiTietTuyen values('" & .cbo_GanTuyen.Text & "', '" & .cbo_MaThoiDiem.Text & "')"
299             Dim bo_lenh As New SqlCommand(lenh, connect)
300             Try
301                 connect.Open()
302                 bo_lenh.ExecuteNonQuery()
303                 connect.Close()
304                 MsgBox(
"Ngày " & .date_Chay.Text & " Giờ: " & .txt_GioChay.Text & " đã được gán cho tuyến " & .cbo_GanTuyen.Text, vbInformation, "Thông báo")
305                 Update_thoi_diem()
306             Catch ex As Exception
307                 MsgBox(
"Gán tuyến không thành công", vbExclamation, "Thông báo")
308             End Try
309         End With
310     End Sub
311 End Class



Quản lý phần mềm bán vé xe VB 8.389 lượt xem

Gõ tìm kiếm nhanh...